package com.sunwayworld.basemodule.business.result.service;

import com.sunwayworld.basemodule.business.ordertask.bean.LimsOrderTaskBean;
import com.sunwayworld.basemodule.business.result.bean.LimsResultBean;
import com.sunwayworld.basemodule.business.result.bean.LimsResultDTO;
import com.sunwayworld.framework.data.page.Page;
import com.sunwayworld.framework.mybatis.mapper.MapperParameter;
import com.sunwayworld.framework.restful.data.RestJsonWrapperBean;
import com.sunwayworld.framework.support.base.service.GenericService;
import com.sunwayworld.framework.support.choosable.service.GenericChoosableService;
import com.sunwayworld.module.sys.at.bean.CoreAuditTrailRecordLineBean;

import java.util.List;

public interface LimsResultService extends GenericService<LimsResultBean, Long>, GenericChoosableService<LimsResultBean, Long> {

    void copyOrderTaskInfoToResult(Long testId, List<Long> testMethodId, List<LimsOrderTaskBean> orderTaskList);

    List<LimsResultDTO> selectForFormula(MapperParameter parameter);

    Page<LimsResultBean> selectResultToColumns(Long runId, RestJsonWrapperBean wrapperBean);

    void updateResultByOrderTaskAndAnalyte(Long orderTaskId, RestJsonWrapperBean wrapperBean);

    List<LimsOrderTaskBean> selectResultByJudgeType(MapperParameter temp);

    LimsResultBean selectDetailByTaskAndAnalyte(Long taskId, Long analyteId);

    Page<LimsResultBean> selectCustomResult(RestJsonWrapperBean wrapper);

    Page<CoreAuditTrailRecordLineBean> selectRecordLineList(String tableName, String id);

}
